package NGUYENVANDOAN.JDBC_DEMO.CALLABLESTATEMENTS;

import java.sql.Connection;
import java.sql.ResultSet;

import com.microsoft.sqlserver.jdbc.SQLServerDataSource;

public class VIEWS {
    public static void main(String[] args) {
        //1. Khai báo đối tượng từ Connection
        Connection objConnection;
        
        //2. Khai báo đối tượng từ SQLServerDataSources
        SQLServerDataSource objDataSource = new SQLServerDataSource();
        
        //3. Thiết lập các thông tin tham số kết nối
        objDataSource.setServerName("192.168.1.200");
        objDataSource.setUser("y2015jc56");
        objDataSource.setPassword("nothing");
        objDataSource.setDatabaseName("QuanLySinhVien");
        objDataSource.setPortNumber(1433);
        
        //4. Thực thi mở kết nối tới DB
        try {
            objConnection = objDataSource.getConnection();
            
            //5. Kiểm tra trạng thái kết nối
            if(!objConnection.isClosed()){
                //6. Khai báo đối tượng
                CONTROLLERS  objController = 
                        new CONTROLLERS(objConnection);
                
                //7. Ủy quyền thực thi nghiệp vụ và nhận về tập bản ghi
                //a. Qua phát biểu truy vấn trực tiếp
                //ResultSet objRs = objController.getSinhVienAll();
                
                //b. Qua thủ tục trong SQL Server
                //ResultSet objRs = objController.getSinhVienProc();
                
                //c. Qua thủ tục có tham số
                StudentEntity objStudent = new StudentEntity();
                objStudent.setMaSv(10);
                ResultSet objRs = objController.getSinhVienById(objStudent);              
                
                //d. Qua thủ tục có nhiều tham số
                SubjectEntity objSubject = new SubjectEntity();
                objSubject.setSubjectId(200);
                objSubject.setSubjectName("PHP");
                if(objController.ThemMonHoc(objSubject)){
                    System.out.println("Thêm môn học thành công");
                }
                else{
                    System.out.println("Không thể thêm được môn học này");
                }
                
                //8. Duyệt và hiển thị tập bản ghi
                while(objRs.next()){
                    System.out.println("MaSV: "+ objRs.getString("MaSV"));
                    System.out.println("HoTen: "+ objRs.getString("HoTen"));
                    System.out.println("NgaySinh: "+ objRs.getString("NgaySinh"));
                }
            } 
            else{
                System.out.println("Kết nối thất bại");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } 
    }
}
